package com.fowo.api.model.purchase;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.fowo.api.common.validator.EnumsString;
import javax.validation.constraints.*;
import lombok.Data;

/** 采购计划子表 导入导出辅助模型 */
@Data
public class PurchasePlansProductExcelPo {

  @ExcelProperty(value = "所属采购计划")
  private String parentPurchasePlansPpgSn;

  @ExcelIgnore
  @ExcelProperty(value = "所属采购计划")
  private Long parentPurchasePlans;

  @Size(max = 50, message = "计划编号长度不能超过20")
  @ExcelProperty(value = "计划编号")
  private String planSn;

  @ExcelProperty(value = "图片")
  private String picUrlName;

  @ExcelIgnore
  @ExcelProperty(value = "图片")
  private Long picUrl;

  @Size(max = 50, message = "产品长度不能超过20")
  @ExcelProperty(value = "产品")
  private String productName;

  @ExcelIgnore
  @ExcelProperty(value = "产品")
  private Long product;

  @Size(max = 50, message = "SKU长度不能超过20")
  @ExcelProperty(value = "SKU")
  private String sku;

  @Size(max = 50, message = "标签长度不能超过20")
  @ExcelProperty(value = "标签")
  private String tags;

  @ExcelProperty(value = "店铺")
  private String sidShopName;

  @ExcelIgnore
  @ExcelProperty(value = "店铺")
  private Long sid;

  @Size(max = 50, message = "店铺名称长度不能超过20")
  @ExcelProperty(value = "店铺名称")
  private String sellerName;

  @Size(max = 50, message = "国家长度不能超过20")
  @ExcelProperty(value = "国家")
  private String marketplace;

  @Size(max = 50, message = "FNSKU长度不能超过20")
  @ExcelProperty(value = "FNSKU")
  private String fnsku;

  @Size(max = 50, message = "MSKU长度不能超过20")
  @ExcelProperty(value = "MSKU")
  private String msku;

  @ExcelProperty(value = "供应商")
  private String supplierIdSupplierName;

  @ExcelIgnore
  @ExcelProperty(value = "供应商")
  private Long supplierId;

  @Size(max = 50, message = "供应商名称长度不能超过20")
  @ExcelProperty(value = "供应商名称")
  private String supplierName;

  @ExcelProperty(value = "仓库")
  private String widName;

  @ExcelIgnore
  @ExcelProperty(value = "仓库")
  private Long wid;

  @Size(max = 100, message = "仓库名称长度不能超过20")
  @ExcelProperty(value = "仓库名称")
  private String warehouseName;

  @Size(max = 50, message = "单箱数量长度不能超过20")
  @ExcelProperty(value = "单箱数量")
  private Integer cgBoxPcs;

  @ExcelProperty(value = "计划采购量")
  private Integer quantityPlan;

  @ExcelProperty(value = "建议采购量")
  private Integer quantitySuggestion;

  @ExcelProperty(value = "供应商报价ID")
  private java.math.BigDecimal psqIdLaborCost;

  @ExcelIgnore
  @ExcelProperty(value = "供应商报价ID")
  private Long psqId;

  @ExcelProperty(value = "供应商报价")
  private java.math.BigDecimal psq;

  @ExcelProperty(value = "采购数量")
  private Integer psqMod;

  @ExcelProperty(value = "含税单价")
  private java.math.BigDecimal psqPrice;

  @ExcelProperty(value = "已采购量")
  private Integer quantityPurchased;

  @Size(max = 50, message = "可用量长度不能超过20")
  @ExcelProperty(value = "可用量")
  private Integer quantityAvailable;

  @Size(max = 50, message = "待检待上架量长度不能超过20")
  @ExcelProperty(value = "待检待上架量")
  private Integer quantityTest;

  @Size(max = 50, message = "待到货量长度不能超过20")
  @ExcelProperty(value = "待到货量")
  private Integer quantityAog;

  @DateTimeFormat("yyyy年MM月dd日")
  @ExcelProperty(value = "期望到货时间")
  private java.util.Date expectArriveTime;

  @Size(max = 50, message = "采购员长度不能超过20")
  @ExcelProperty(value = "采购员")
  private String cgUidName;

  @ExcelIgnore
  @ExcelProperty(value = "采购员")
  private Long cgUid;

  @Size(max = 50, message = "采购员名称长度不能超过20")
  @ExcelProperty(value = "采购员名称")
  private String cgOptUsername;

  @Size(max = 50, message = "备注长度不能超过20")
  @ExcelProperty(value = "备注")
  private String remark;

  @EnumsString(
    value = { "待采购", "已完成", "已驳回", "已作废", "待审批" },
    message = "状态的可用值为 “待采购”, “已完成”, “已驳回”, “已作废”, “待审批” 其中之一"
  )
  @ExcelProperty(value = "状态")
  private String status;
}
